package com.jsy.common.util;

import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class FreeMarkerExample {
    public static void main(String[] args) {
        // 创建 FreeMarker 配置实例
        Configuration cfg = new Configuration(Configuration.VERSION_2_3_28);
        try {
            // 设置模板目录
            cfg.setDirectoryForTemplateLoading(new File("templates"));
            // 设置字符编码
            cfg.setDefaultEncoding("UTF-8");

            // 准备数据模型
            Map<String, Object> dataModel = new HashMap<>();
            dataModel.put("title", "FreeMarker Example");
            dataModel.put("user", "John Doe");

            List<String> items = new ArrayList<>();
            items.add("Item 1");
            items.add("Item 2");
            items.add("Item 3");
            dataModel.put("items", items);

            // 获取模板
            Template template = cfg.getTemplate("example.ftl");

            // 创建输出文件
            File outputFile = new File("output.html");
            FileWriter writer = new FileWriter(outputFile);

            // 合并模板和数据模型
            template.process(dataModel, writer);

            // 关闭写入器
            writer.close();
            System.out.println("Output file generated successfully.");

        } catch (IOException | TemplateException e) {
            e.printStackTrace();
        }
    }
}    